#![feature(map_first_last)]
#![feature(unboxed_closures)]
#![feature(new_uninit)]
#![feature(btree_drain_filter)]
#![feature(int_log)]
#![feature(trait_alias)]
#![feature(once_cell)]

mod doh;
mod kad;
mod key;
mod pool;
mod recv;
mod rmw;
mod typedef;
mod util;
mod var;

#[no_mangle]
pub unsafe extern "C" fn run() {
  use async_std::task::block_on;
  logger::init()
    .level_for("rmw", log::LevelFilter::Trace)
    .apply()
    .unwrap();
  block_on(async {
    let rmw = rmw::v4().unwrap();
    rmw.run().await.unwrap();
  });
}
